<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework Condition="'$(WasmEnableThreads)' != 'true'">$(NetCoreAppCurrent)</TargetFramework>
    <TargetFrameworks Condition="'$(WasmEnableThreads)' == 'true'">$(NetCoreAppCurrent);$(NetCoreAppCurrent)-browser</TargetFrameworks>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
  </PropertyGroup>
  <PropertyGroup>
    <TargetPlatformIdentifier>$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))</TargetPlatformIdentifier>
    <FeatureWasmManagedThreads Condition="'$(TargetPlatformIdentifier)' == 'browser' and '$(WasmEnableThreads)' == 'true'">true</FeatureWasmManagedThreads>
    <DefineConstants Condition="'$(FeatureWasmManagedThreads)' == 'true'" >$(DefineConstants);FEATURE_WASM_MANAGED_THREADS</DefineConstants>
  </PropertyGroup>
  <!-- Compiled Source Files -->
  <ItemGroup>
    <Compile Include="System\Linq\Parallel\Channels\AsynchronousChannel.cs" />
    <Compile Include="System\Linq\Parallel\Channels\SynchronousChannel.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\AggregationMinMaxHelpers.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\EmptyEnumerable.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\EnumerableWrapperWeakToStrong.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\IParallelPartitionable.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\OrderedParallelQuery.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\ParallelEnumerableWrapper.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\ParallelQuery.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\QueryAggregationOptions.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\RangeEnumerable.cs" />
    <Compile Include="System\Linq\Parallel\Enumerables\RepeatEnumerable.cs" />
    <Compile Include="System\Linq\Parallel\JaggedArray.cs" />
    <Compile Include="System\Linq\Parallel\Merging\ArrayMergeHelper.cs" />
    <Compile Include="System\Linq\Parallel\Merging\AsynchronousChannelMergeEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\Merging\DefaultMergeHelper.cs" />
    <Compile Include="System\Linq\Parallel\Merging\IMergeHelper.cs" />
    <Compile Include="System\Linq\Parallel\Merging\MergeEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\Merging\MergeExecutor.cs" />
    <Compile Include="System\Linq\Parallel\Merging\OrderPreservingMergeHelper.cs" />
    <Compile Include="System\Linq\Parallel\Merging\OrderPreservingPipeliningMergeHelper.cs" />
    <Compile Include="System\Linq\Parallel\Merging\SynchronousChannelMergeEnumerator.cs" />
    <Compile Include="System\Linq\ParallelEnumerable.cs" />
    <Compile Include="System\Linq\ParallelExecutionMode.cs" />
    <Compile Include="System\Linq\ParallelMergeOptions.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\HashRepartitionEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\HashRepartitionStream.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\IPartitionedStreamRecipient.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\OrderedHashRepartitionEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\OrderedHashRepartitionStream.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\PartitionedDataSource.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\PartitionedStream.cs" />
    <Compile Include="System\Linq\Parallel\Partitioning\UnorderedHashRepartitionStream.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\AssociativeAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\ExceptQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\GroupJoinQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\HashJoinQueryOperatorEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\IntersectQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\JoinQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\UnionQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Binary\ZipQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\CountAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\DecimalAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\DecimalMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\DecimalSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\DoubleAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\DoubleMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\DoubleSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\FloatAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\FloatMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\FloatSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\InlinedAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\InlinedAggregationOperatorEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\IntAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\IntMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\IntSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\LongAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\LongCountAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\LongMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\LongSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableDecimalAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableDecimalMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableDecimalSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableDoubleAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableDoubleMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableDoubleSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableFloatAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableFloatMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableFloatSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableIntAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableIntMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableIntSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableLongAverageAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableLongMinMaxAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Inlined\NullableLongSumAggregationOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\ListQueryResults.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Options\OrderingQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Options\QueryExecutionOption.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\OrdinalIndexState.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\PartitionedStreamMerger.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\PartitionerQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\QueryOpeningEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\QueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\QueryOperatorEnumerator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\QueryResults.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\QuerySettings.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\ScanQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\UnaryQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\AnyAllSearchOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\ContainsSearchOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\DefaultIfEmptyQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\DistinctQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\ElementAtQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\ForAllOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\GroupByQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\IndexedSelectQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\IndexedWhereQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\LastQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\ReverseQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\SelectManyQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\SelectQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\SingleQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\SortQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\TakeOrSkipQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\TakeOrSkipWhileQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\QueryOperators\Unary\WhereQueryOperator.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\CancellationState.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\OrderPreservingPipeliningSpoolingTask.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\OrderPreservingSpoolingTask.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\QueryLifecycle.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\QueryTask.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\QueryTaskGroupState.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\Scheduling.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\SpoolingTask.cs" />
    <Compile Include="System\Linq\Parallel\Scheduling\SpoolingTaskBase.cs" />
    <Compile Include="System\Linq\Parallel\Utils\CancellableEnumerable.cs" />
    <Compile Include="System\Linq\Parallel\Utils\ExceptionAggregator.cs" />
    <Compile Include="System\Linq\Parallel\Utils\ExchangeUtilities.cs" />
    <Compile Include="System\Linq\Parallel\Utils\FixedMaxHeap.cs" />
    <Compile Include="System\Linq\Parallel\Utils\GrowingArray.cs" />
    <Compile Include="System\Linq\Parallel\Utils\HashLookup.cs" />
    <Compile Include="System\Linq\Parallel\Utils\IntValueEvent.cs" />
    <Compile Include="System\Linq\Parallel\Utils\ListChunk.cs" />
    <Compile Include="System\Linq\Parallel\Utils\Lookup.cs" />
    <Compile Include="System\Linq\Parallel\Utils\Pair.cs" />
    <Compile Include="System\Linq\Parallel\Utils\PairComparer.cs" />
    <Compile Include="System\Linq\Parallel\Utils\PLINQETWProvider.cs" />
    <Compile Include="System\Linq\Parallel\Utils\ReverseComparer.cs" />
    <Compile Include="System\Linq\Parallel\Utils\Shared.cs" />
    <Compile Include="System\Linq\Parallel\Utils\Sorting.cs" />
    <Compile Include="System\Linq\Parallel\Utils\TraceHelpers.cs" />
    <Compile Include="System\Linq\Parallel\Utils\Util.cs" />
    <Compile Include="System\Linq\Parallel\Utils\Wrapper.cs" />
    <Compile Include="System\Linq\Parallel\Utils\WrapperEqualityComparer.cs" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System.Collections" />
    <Reference Include="System.Collections.Concurrent" />
    <Reference Include="System.Diagnostics.Tracing" />
    <Reference Include="System.Linq" />
    <Reference Include="System.Runtime" />
    <Reference Include="System.Threading" Condition="'$(WasmEnableThreads)' != 'true'" />
    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.WebAssembly.Threading\ref\System.Threading.WebAssembly.Threading.csproj" Condition="'$(WasmEnableThreads)' == 'true'" />
  </ItemGroup>

</Project>
